The scale and performance of large computer systems may be limited by power constraints. For example, power delivery systems may have limits in the amount of current that they can supply. Dynamic Voltage-Frequency Scaling (DVFS) may be used to adjust hardware performance to varying levels of demand. When dynamically selecting voltage and frequency points, a design may require a guarantee that the power delivery current limit is not exceeded. Maximum current may depend on the voltage-frequency decision and the dynamic capacitance (Cdyn) of the circuits/components. For circuits/components exhibiting a wide dynamic capacitance range, ensuring that no current violation occurs may limit the maximum operating frequency, which in turn may limit performance.
To maximize performance, different operation modes may be established for circuits/components such that different dynamic capacitance limits are enforced. Set dynamic capacitance levels may enable circuits/components to operate at higher frequencies than they would otherwise as long as the workload being performed does not exceed the set dynamic capacitance level. When a circuit/component needs to exceed its set dynamic capacitance level, the circuit/component may a) request a higher set dynamic capacitance level and b) throttle its pipeline as needed to ensure that the dynamic capacitance level comports with the set level until a new, higher dynamic capacitance level is granted. Throttling the pipeline, however, may reduce both performance and energy efficiency.
Workload dynamic capacitance characteristics may vary rapidly for real workloads. In computers with large numbers of central processing units (CPUs) or with individual CPUs having multiple cores, it may be impractical for a central power control unit to reevaluate granted dynamic capacitance levels and make DVFS adjustments at the rate necessary to achieve high performance and efficiency. That is, a centralized power control system may scale poorly with respect to the number of entities that it controls and the time scale of the workload phases to be managed.